// 简化的安全服务层主程序

use log::info;
use safe_services_simple::{SimpleServiceManager, ServiceError};

fn main() -> Result<(), ServiceError> {
    // 初始化日志（简化版本，不使用env_logger）
    simple_logger::init().unwrap();
    
    info!("Starting Quick Simple Services");
    
    // 创建服务管理器
    let mut service_manager = SimpleServiceManager::new()?;
    
    // 启动所有服务
    service_manager.start_all()?;
    
    info!("All services started successfully");
    
    // 运行主循环（简化版本）
    run_main_loop(&service_manager)?;
    
    // 停止所有服务
    service_manager.stop_all()?;
    
    info!("Quick Simple Services stopped");
    Ok(())
}

fn run_main_loop(_service_manager: &SimpleServiceManager) -> Result<(), ServiceError> {
    info!("Entering main loop");
    
    // 简化版本：运行固定时间后退出
    let mut counter = 0;
    const MAX_ITERATIONS: u32 = 10;
    
    while counter < MAX_ITERATIONS {
        info!("Main loop iteration {}", counter + 1);
        
        // 模拟一些工作
        std::thread::sleep(std::time::Duration::from_secs(1));
        
        counter += 1;
        
        // 检查退出条件
        if counter >= MAX_ITERATIONS {
            info!("Main loop completed {} iterations", MAX_ITERATIONS);
            break;
        }
    }
    
    info!("Main loop finished");
    Ok(())
}

#[cfg(test)]
mod tests {
    use super::*;
    
    #[test]
    fn test_service_creation() {
        let result = SimpleServiceManager::new();
        assert!(result.is_ok());
    }
    
    #[test]
    fn test_service_lifecycle() {
        let mut manager = SimpleServiceManager::new().unwrap();
        assert!(manager.start_all().is_ok());
        assert!(manager.stop_all().is_ok());
    }
}